<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ES6对于字符新增的方法</title>
</head>
<body>
    <script>
        // 1. 支持二进制、八进制的写法(在ES6之前就支持二进制和十六进制, 所以不要问为啥ES6不新增二进制和十六进制)
        // 二进制声明使用0b开头、八进制用0o开头、十进制直接写就行、十六进制用0x开头
        let num1 = 0b10;//二进制的10，也就是2
        let num2 = 0o10;//八进制的10，也就是8
        let num3 = 10;//十进制的10，也就是10
        let num4 = 0x10;//十六进制的10，也就是16
        console.log(num1,num2,num3,num4);//2,8,10,16

        // 2. Number.isFinite   Number.isNaN
        /*
            也许你会疑惑，我们ES6之前不是就又isFinite和isNaN了么，怎么又来了?
            注意区别，之前的是全局也就是挂载window上的，这个是Number自己的
            他们的主要区别在于，Number上面的这两个方法，会先判断是不是数值类型
            如果不是数值类型就直接返回false
            而全局上的这两个方法会对于不是数值类型的做个转换，然后再进行判断。
            这会让很多字符串作为字符串传入window.isNaN()也返回true

            Number.inFinite(num)
                - 如果num为数值类型且有限，返回true
                - 如果num不是数值类型，返回false
                - 如果num为NaN或者Infinity，返回false
                - 如果num为无限或者不合法的数值，返回false

            Number.isNaN(num) 我觉着这个不用我解释了吧
            Number.isInteger(num) 判断num是否为整数

            Number.EPSILON  注意没有括号，这是个值不是函数，它表示1与大于1的最小浮点数之间的差
        */ 
        console.log(Number.isFinite(100));//true
        console.log(Number.isFinite(100/0));//false
        console.log(Number.isFinite(NaN));//false
        console.log(Number.isFinite(Infinity));//false

        console.log('----------------------------------------');

        console.log(Number.isNaN(100));//false
        console.log(Number.isNaN(NaN));//true
        console.log(Number.isNaN('kerwin'));//false
        console.log(Number.isNaN('100'));//false

        console.log('----------------------------------------');

        console.log(Number.isInteger(100));//true
        console.log(Number.isInteger(NaN));//false
        console.log(Number.isInteger('100'));//false
        console.log(Number.isInteger(['kerwin']));//false

        console.log('---------------------------------------');

        console.log(isEqual(1,2));//false
        function isEqual(a,b){
            return Math.abs(a-b)<Number.EPSILON
        }   
    </script>
</body>
</html>